home *** CD-ROM | disk | FTP | other *** search
- (*------------------------------------------
-
- :Module. CyberGraphics.mod
- :Author. Albert Weinert [awn]
- :Address. Adamsstr. 83 , 51063 Köln, Germany
- :EMail. a.weinert@darkness.gun.de
- :Phone. +49-221-613100
- :Revision. R.2
- :Date. 05-Mar-1995
- :Copyright. (C) Copyright 1995 Albert Weinert
- :Copyright. Freeware
- :Language. Oberon-2
- :Translator. AmigaOberon V3.20
- :Contents. Oberon Interface for the "cybergraphics.library"
- :Contents. (C) Copyright 1994-1995 by Thomas Sontowski & Frank Mariak
- :Contents. The interface is for Oberon-A and for AmigaOberon
- :Remarks. Use it at you own risk
- :Remarks. When you find bugs in the interface, mail me the bugs, please.
- :Usage. Look at the Cybergraphics Autodocs
- :History. .1 [awn] 27-Feb-1995 : Erstellt
- :History. .2 [awn] 05-Mar-1995 : Added export markers to the library
- :History. procedures. Sorry, for that little error.
-
- --------------------------------------------*)
-
-
- (* <*IF OberonA THEN*> $IF OberonA *)
-
- (*
- <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
- <*$ CaseChk- IndexChk- LongVars+ NilChk- *>
- <*$ RangeChk- StackChk- TypeChk- OvflChk- *>
- *)
-
- (* <* ELSE *> $ELSE *)
-
- (* $CaseChk- $NilChk- *)
- (* $RangeChk- $StackChk- $TypeChk- $OvflChk- *)
-
- (* <*END*> $END *)
-
- MODULE CyberGraphics;
-
- IMPORT
- e := Exec,
- u := Utility,
- (* <*IF OberonA THEN*> $IF OberonA *)
- Kernel,
- y := SYSTEM,
- (* <*END*> $END *)
- g := Graphics;
-
- CONST
- libName *= "cybergraphics.library";
- libMinimum *= 40;
- libVersion *= 40;
-
- (* *)
- (* Definition of CyberModeNode (Returned in AllocModeList) *)
- (* *)
-
- TYPE
-
- (* <*IF OberonA THEN*> $IF OberonA *)
- CyberModeNodePtr = POINTER [2] TO CyberModeNode;
- CyberModeNode = RECORD [2] (e.NodeBase);
- node -: e.Node;
- (* <* ELSE *> $ELSE *)
- CyberModeNodePtr = UNTRACED POINTER TO CyberModeNode;
- CyberModeNode = STRUCT( node-:e.Node );
- (* <*END*> $END *)
- modeText -: ARRAY g.displayNameLen OF CHAR;
- displayID -: LONGINT;
- width -: INTEGER;
- height -: INTEGER;
- depth -: INTEGER;
- displayTagList -: u.TagListPtr;
- END;
-
-
- (* *)
- (* Parameters for GetCyberMapAttr *)
- (* *)
- CONST
-
- mAttrXMod *= 080000001H; (* function returns BytesPerRow if its called with this parameter *)
- mAttrBPPix *= 080000002H; (* BytesPerPixel shall be returned *)
- mAttrDispAdr *= 080000003H; (* do not use this ! private tag *)
- mAttrPixFmt *= 080000004H; (* the pixel format is returned *)
- mAttrWidth *= 080000005H; (* returns width in pixels *)
- mAttrHeight *= 080000006H; (* returns height in lines *)
- mAttrDepth *= 080000007H; (* returns bits per pixel *)
- mAttrIsCyberGfx *= 080000008H; (* returns -1 if supplied bitmap is a cybergfx one *)
-
- (* *)
- (* Parameters for GetCyberIDAttr *)
- (* *)
-
- idAttrPixFmt *= 080000001H; (* the pixel format is returned *)
- idAttrWidth *= 080000002H; (* returns visible width in pixels *)
- idAttrHeight *= 080000003H; (* returns visible height in lines *)
- idAttrDepth *= 080000004H; (* returns bits per pixel *)
- idAttrBPPix *= 080000005H; (* BytesPerPixel shall be returned *)
-
- (* *)
- (* Tags for CyberModeRequest *)
- (* *)
-
- mReqTB *= u.user+040000H;
-
- (* *)
- (* FilterTags *)
- (* *)
-
- mReqMinDepth *= mReqTB+0; (* Minimum depth for displayed screenmode *)
- mReqMaxDepth *= mReqTB+1; (* Maximum depth " " " *)
- mReqMinWidth *= mReqTB+2; (* Minumum width " " " *)
- mReqMaxWidth *= mReqTB+3; (* Maximum width " " " *)
- mReqMinHeight *= mReqTB+4; (* Minumum height " " " *)
- mReqMaxHeight *= mReqTB+5; (* Minumum height " " " *)
- mReqCModelArray *= mReqTB+6;
-
- mReqWinTitle *= mReqTB+20;
- mReqOKText *= mReqTB+21;
- mReqCancelText *= mReqTB+22;
-
- mReqScreen *= mReqTB+30; (* Screen you wish the Requester to open on *)
-
- (* *)
- (* Tags for BestCyberModeID *)
- (* *)
-
- bidTB *= u.user+050000H;
-
- (* FilterTags *)
-
- bidDepth *= bidTB+0;
- bidNominalWidth *= bidTB+1;
- bidNominalHeight *= bidTB+2;
- bidMonitorID *= bidTB+3;
-
-
- (* *)
- (* definition of divers pixelformats *)
- (* *)
- CONST
- pixFmtLUT8 *= 0 ;
- pixFmtRGB15 *= 1 ;
- pixFmtBGR15 *= 2 ;
- pixFmtRGB15PC *= 3 ;
- pixFmtBGR15PC *= 4 ;
- pixFmtRGB16 *= 5 ;
- pixFmtBGR16 *= 6 ;
- pixFmtRGB16PC *= 7 ;
- pixFmtBGR16PC *= 8 ;
- pixFmtRGB24 *= 9 ;
- pixFmtBGR24 *= 10;
- pixFmtARGB32 *= 11;
- pixFmtBGRA32 *= 12;
- pixFmtRGBA32 *= 13;
-
- (* *)
- (* SrcRectangle formats defines for xxxPixelArray calls *)
- (* *)
- CONST
- rectFmtRGB *= 0;
- rectFmtRGBA *= 1;
- rectFmtARGB *= 2;
- rectFmtLUT8 *= 3;
- rectFmtGREY8 *= 4;
-
- VAR
- base -: e.LibraryPtr;
-
- (* <*IF OberonA THEN*> $IF OberonA *)
- PROCEDURE IsCyberModeID *[base, - 54]( modeID[0]: LONGINT) : BOOLEAN;
- PROCEDURE BestCModeIDListTags *[base, - 60]( tags[8].. : u.Tag ): LONGINT;
- PROCEDURE BestCModeIDListTagList *[base, - 60]( tags[8]: u.TagListPtr ): LONGINT;
- PROCEDURE CModeRequestTags *[base, - 66]( requester[8] : e.APTR;
- tags[9].. : u.Tag ): LONGINT;
- PROCEDURE CModeRequestTagList *[base, - 66]( requester[8] : e.APTR;
- tags[9] : u.TagListPtr ): LONGINT;
- PROCEDURE AllocCModeListTags *[base, - 72]( tags[9].. : u.Tag ): e.ListPtr;
- PROCEDURE AllocCModeListTagList *[base, - 72]( tags[9] : u.TagListPtr ): e.ListPtr;
- PROCEDURE FreeCModeList *[base, - 78]( modeList[8]: e.ListPtr );
- PROCEDURE ScalePixelArray *[base, - 90]( srcRect[8]:e.APTR;
- srcW[0],srcH[1],srcMod[2]:INTEGER;
- rPort[9]:g.RastPortPtr;
- destX[3],destY[4],
- destW[5],destH[6]:INTEGER;
- srcFormat[7]:SHORTINT): LONGINT;
- PROCEDURE GetCyberMapAttr *[base, - 96]( bitmap[8]:g.BitMapPtr;
- attrNr[0]:LONGINT): LONGINT;
- PROCEDURE GetCyberIDAttr *[base, -102]( cyberIdAttr[0],
- cyberDisplayModeId[1]: LONGINT): LONGINT;
- PROCEDURE ReadRGBPixel *[base, -108]( rPort[9]: g.RastPortPtr;
- x[0],y[1]:INTEGER ): LONGINT;
- PROCEDURE WriteRGBPixel *[base, -114]( rPort[9]: g.RastPortPtr;
- x[0],y[1]:INTEGER;
- color[2]: LONGINT ): LONGINT;
- PROCEDURE ReadPixelArray *[base, -120]( destRect[8]:e.APTR;
- destX[0],destY[1],destMod[2]:INTEGER;
- rPort[9] : g.RastPortPtr;
- srcX[3],srcY[4],
- sizeX[5],sizeY[6]:INTEGER;
- destFormat[7]:SHORTINT): LONGINT;
- PROCEDURE WritePixelArray *[base, -126]( srcRect[8]:e.APTR;
- srcX[0],srcY[1],srcMod[2]:INTEGER;
- rPort[9] : g.RastPortPtr;
- destX[3],destY[4],
- sizeX[5],sizeY[6]:INTEGER;
- srcFormat[7]:SHORTINT): LONGINT;
- PROCEDURE MovePixelArray *[base, -132]( srcX[0],srcY[1]:INTEGER;
- rPort[9]:g.RastPortPtr;
- destX[2],destY[3],
- sizeX[4],sizeY[5]:INTEGER): LONGINT;
- PROCEDURE SwapPixelArray *[base, -138]( memRect[8]:e.APTR;
- memX[0],memY[1],memMod[2]:INTEGER;
- rPort[9] : g.RastPortPtr;
- rastX[3],rastY[4],
- sizeX[5],sizeY[6]:INTEGER;
- memFormat[7]:SHORTINT): LONGINT;
- PROCEDURE InvertPixelArray *[base, -144]( rPort[9]: g.RastPortPtr;
- destX[0],destY[1],
- sizeX[2],sizeY[3]:INTEGER):LONGINT;
- PROCEDURE FillPixelArray *[base, -150]( rPort[8] : g.RastPortPtr;
- destX[0],destY[1],
- sizeX[2],sizeY[3]:INTEGER;
- ARGB[4]:LONGINT): LONGINT;
- PROCEDURE DoCDrawMethodTags *[base, -156]( hook [8] : u.HookPtr;
- rPort[9] : g.RastPortPtr;
- tags[10].. : u.Tag);
- PROCEDURE DoCDrawMethodTagList *[base, -156]( hook [8] : u.HookPtr;
- rPort[9] : g.RastPortPtr;
- tags[10] : u.TagListPtr);
- (* <* ELSE *> $ELSE *)
- PROCEDURE IsCyberModeID *{base, - 54}( modeID{0}: LONGINT) : BOOLEAN;
- PROCEDURE BestCModeIDListTags *{base, - 60}( tags{8}.. : u.Tag ): LONGINT;
- PROCEDURE BestCModeIDListTagList *{base, - 60}( tags{8}: u.TagListPtr ): LONGINT;
- PROCEDURE CModeRequestTags *{base, - 66}( requester{8} : e.APTR;
- tags{9}.. : u.Tag ): LONGINT;
- PROCEDURE CModeRequestTagList *{base, - 66}( requester{8} : e.APTR;
- tags{9} : u.TagListPtr ): LONGINT;
- PROCEDURE AllocCModeListTags *{base, - 72}( tags{9}.. : u.Tag ): e.ListPtr;
- PROCEDURE AllocCModeListTagList *{base, - 72}( tags{9} : u.TagListPtr ): e.ListPtr;
- PROCEDURE FreeCModeList *{base, - 78}( modeList{8}: e.ListPtr );
- PROCEDURE ScalePixelArray *{base, - 90}( srcRect{8}:e.APTR;
- srcW{0},srcH{1},srcMod{2}:INTEGER;
- rPort{9}:g.RastPortPtr;
- destX{3},destY{4},
- destW{5},destH{6}:INTEGER;
- srcFormat{7}:SHORTINT): LONGINT;
- PROCEDURE GetCyberMapAttr *{base, - 96}( bitmap{8}:g.BitMapPtr;
- attrNr{0}:LONGINT): LONGINT;
- PROCEDURE GetCyberIDAttr *{base, -102}( cyberIdAttr{0},
- cyberDisplayModeId{1}: LONGINT): LONGINT;
- PROCEDURE ReadRGBPixel *{base, -108}( rPort{9}: g.RastPortPtr;
- x{0},y{1}:INTEGER ): LONGINT;
- PROCEDURE WriteRGBPixel *{base, -114}( rPort{9}: g.RastPortPtr;
- x{0},y{1}:INTEGER;
- color{2}: LONGINT ): LONGINT;
- PROCEDURE ReadPixelArray *{base, -120}( destRect{8}:e.APTR;
- destX{0},destY{1},destMod{2}:INTEGER;
- rPort{9} : g.RastPortPtr;
- srcX{3},srcY{4},
- sizeX{5},sizeY{6}:INTEGER;
- destFormat{7}:SHORTINT): LONGINT;
- PROCEDURE WritePixelArray *{base, -126}( srcRect{8}:e.APTR;
- srcX{0},srcX{1},srcMod{2}:INTEGER;
- rPort{9} : g.RastPortPtr;
- destX{3},destY{4},
- sizeX{5},sizeY{6}:INTEGER;
- srcFormat{7}:SHORTINT): LONGINT;
- PROCEDURE MovePixelArray *{base, -132}( srcX{0},srcY{1}:INTEGER;
- rPort{9}:g.RastPortPtr;
- destX{2},destY{3},
- sizeX{4},sizeY{5}:INTEGER): LONGINT;
- PROCEDURE SwapPixelArray *{base, -138}( memRect{8}:e.APTR;
- memX{0},memY{1},memMod{2}:INTEGER;
- rPort{9} : g.RastPortPtr;
- rastX{3},rastY{4},
- sizeX{5},sizeY{6}:INTEGER;
- memFormat{7}:SHORTINT): LONGINT;
- PROCEDURE InvertPixelArray *{base, -144}( rPort{9}: g.RastPortPtr;
- destX{0},destY{1},
- sizeX{2},sizeY{3}:INTEGER):LONGINT;
- PROCEDURE FillPixelArray *{base, -150}( rPort{8} : g.RastPortPtr;
- destX{0},destY{1},
- sizeX{2},sizeY{3}:INTEGER;
- ARGB{4}:LONGINT): LONGINT;
- PROCEDURE DoCDrawMethodTags *{base, -156}( hook {8} : u.HookPtr;
- rPort{9} : g.RastPortPtr;
- tags{10}.. : u.Tag);
- PROCEDURE DoCDrawMethodTagList *{base, -156}( hook {8} : u.HookPtr;
- rPort{9} : g.RastPortPtr;
- tags{10} : u.TagListPtr);
- (* <*END*> $END *)
-
- (* <*IF OberonA THEN*> $IF OberonA *)
-
- (* <*$LongVars-*> *)
-
- PROCEDURE* CloseLib (VAR rc : LONGINT);
-
- BEGIN (* CloseLib *)
- IF base # NIL THEN e.CloseLibrary (base) END;
- END CloseLib;
-
- BEGIN (* Dos *)
- base := e.OpenLibrary (libName, libMinimum);
- Kernel.SetCleanup (CloseLib)
-
- (* <* ELSE *> $ELSE *)
-
- BEGIN
- base := e.OpenLibrary(libName, libMinimum);
-
- CLOSE
- IF base#NIL THEN e.CloseLibrary(base) END;
-
- (* <*END*> $END *)
-
- END CyberGraphics.
-